From 93fd424f6c672894be1be2ea897d0e22094a3dd8 Mon Sep 17 00:00:00 2001 From: robertl Date: Mon, 10 Jan 2005 14:40:32 +0000 Subject: [PATCH] Add member to vector to indicate read/write capability of each format. --- gpsbabel/Makefile | 7 ++++--- gpsbabel/brauniger_iq.c | 1 + gpsbabel/cetus.c | 1 + gpsbabel/coastexp.c | 1 + gpsbabel/copilot.c | 1 + gpsbabel/defs.h | 18 ++++++++++++++++++ gpsbabel/delgpl.c | 1 + gpsbabel/easygps.c | 1 + gpsbabel/garmin.c | 1 + gpsbabel/gcdb.c | 1 + gpsbabel/geo.c | 1 + gpsbabel/geoniche.c | 1 + gpsbabel/glogbook.c | 1 + gpsbabel/gpilots.c | 1 + gpsbabel/gpspilot.c | 1 + gpsbabel/gpsutil.c | 1 + gpsbabel/gpx.c | 1 + gpsbabel/hiketech.c | 1 + gpsbabel/holux.c | 1 + gpsbabel/hsa_ndv.c | 1 + gpsbabel/html.c | 1 + gpsbabel/igc.c | 1 + gpsbabel/magnav.c | 1 + gpsbabel/magproto.c | 2 ++ gpsbabel/mapopolis.c | 1 + gpsbabel/mapsend.c | 1 + gpsbabel/mapsource.c | 1 + gpsbabel/navicache.c | 1 + gpsbabel/netstumbler.c | 1 + gpsbabel/nmea.c | 1 + gpsbabel/ozi.c | 1 + gpsbabel/palmdoc.c | 1 + gpsbabel/pcx.c | 1 + gpsbabel/psitrex.c | 1 + gpsbabel/psp.c | 1 + gpsbabel/quovadis.c | 1 + gpsbabel/saroute.c | 1 + gpsbabel/shape.c | 1 + gpsbabel/text.c | 1 + gpsbabel/tiger.c | 1 + gpsbabel/tmpro.c | 1 + gpsbabel/tpg.c | 1 + gpsbabel/vcf.c | 1 + gpsbabel/xcsv.c | 1 + 44 files changed, 65 insertions(+), 3 deletions(-) diff --git a/gpsbabel/Makefile b/gpsbabel/Makefile index ba6396fd5..006b797f0 100644 --- a/gpsbabel/Makefile +++ b/gpsbabel/Makefile @@ -26,7 +26,8 @@ FMTS=magproto.o gpx.o geo.o mapsend.o mapsource.o garmin_tables.o \ xcsv.o gcdb.o tiger.o internal_styles.o easygps.o quovadis.o \ gpilots.o saroute.o navicache.o psitrex.o geoniche.o delgpl.o \ ozi.o nmea.o text.o html.o palmdoc.o netstumbler.o hsa_ndv.o \ - igc.o brauniger_iq.o shape.o hiketech.o glogbook.o coastexp.o + igc.o brauniger_iq.o shape.o hiketech.o glogbook.o coastexp.o \ + vcf.o FILTERS=position.o duplicate.o arcdist.o polygon.o smplrout.o reverse_route.o sort.o stackfilter.o @@ -89,8 +90,8 @@ dep: (echo -n "internal_styles.c: mkstyle.sh " ; echo style/*.style ; /bin/echo -e '\t./mkstyle.sh > internal_styles.c || (rm -f internal_styles.c ; exit 1)' ) >> /tmp/dep echo Edit Makefile and bring in /tmp/dep -VERSIONU=1_2_5_beta12222004 -VERSIOND=1.2.5_beta12222004 +VERSIONU=1_2_5_beta01032005 +VERSIOND=1.2.5_beta01032005 #VERSIONU=1_2_4 #VERSIOND=1.2.4 diff --git a/gpsbabel/brauniger_iq.c b/gpsbabel/brauniger_iq.c index 2d06c5753..e42d820c2 100644 --- a/gpsbabel/brauniger_iq.c +++ b/gpsbabel/brauniger_iq.c @@ -268,6 +268,7 @@ static arglist_t brauniger_iq_args[] = { ff_vecs_t brauniger_iq_vecs = { ff_type_serial, + FF_CAP_RW_ALL, rd_init, NULL, rd_deinit, diff --git a/gpsbabel/cetus.c b/gpsbabel/cetus.c index a85c9d487..f46cc2b07 100644 --- a/gpsbabel/cetus.c +++ b/gpsbabel/cetus.c @@ -416,6 +416,7 @@ data_write(void) ff_vecs_t cetus_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/coastexp.c b/gpsbabel/coastexp.c index 68687d0ae..370e09623 100755 --- a/gpsbabel/coastexp.c +++ b/gpsbabel/coastexp.c @@ -622,6 +622,7 @@ ce_write(void) ff_vecs_t coastexp_vecs = { ff_type_file, + { ff_cap_read|ff_cap_write, ff_cap_none, ff_cap_read|ff_cap_write }, ce_rd_init, ce_wr_init, ce_rd_deinit, diff --git a/gpsbabel/copilot.c b/gpsbabel/copilot.c index 10d028da4..abb9bb0fc 100644 --- a/gpsbabel/copilot.c +++ b/gpsbabel/copilot.c @@ -193,6 +193,7 @@ data_write(void) ff_vecs_t copilot_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index e349b5d6b..e2d9c4916 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -371,11 +371,29 @@ typedef enum { ff_type_serial, /* format describes a serial protoco (GUI can display port names) */ } ff_type; +typedef enum { + ff_cap_rw_wpt, + ff_cap_rw_trk, + ff_cap_rw_rte +} ff_cap_array; + +typedef enum { + ff_cap_none, + ff_cap_read = 1, + ff_cap_write = 2 +} ff_cap; +#define FF_CAP_RW_ALL \ + { ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_write } + +#define FF_CAP_RW_WPT \ + { ff_cap_read | ff_cap_write, ff_cap_none, ff_cap_none} + /* * Describe the file format to the caller. */ typedef struct ff_vecs { ff_type type; + ff_cap cap[3]; ff_init rd_init; ff_init wr_init; ff_deinit rd_deinit; diff --git a/gpsbabel/delgpl.c b/gpsbabel/delgpl.c index dd0146975..f9d68c233 100644 --- a/gpsbabel/delgpl.c +++ b/gpsbabel/delgpl.c @@ -114,6 +114,7 @@ gpl_write(void) ff_vecs_t gpl_vecs = { ff_type_file, + { ff_cap_none, ff_cap_read | ff_cap_write, ff_cap_none }, gpl_rd_init, gpl_wr_init, gpl_rd_deinit, diff --git a/gpsbabel/easygps.c b/gpsbabel/easygps.c index 827d2057f..b64373b1e 100644 --- a/gpsbabel/easygps.c +++ b/gpsbabel/easygps.c @@ -263,6 +263,7 @@ data_write(void) ff_vecs_t easygps_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/garmin.c b/gpsbabel/garmin.c index cd913acd4..f321d1f3f 100644 --- a/gpsbabel/garmin.c +++ b/gpsbabel/garmin.c @@ -624,6 +624,7 @@ data_write() ff_vecs_t garmin_vecs = { ff_type_serial, + FF_CAP_RW_ALL, rw_init, rw_init, rw_deinit, diff --git a/gpsbabel/gcdb.c b/gpsbabel/gcdb.c index bde86f8ef..a67230628 100644 --- a/gpsbabel/gcdb.c +++ b/gpsbabel/gcdb.c @@ -331,6 +331,7 @@ data_write(void) ff_vecs_t gcdb_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/geo.c b/gpsbabel/geo.c index f6b4c094f..5caf4c0d9 100644 --- a/gpsbabel/geo.c +++ b/gpsbabel/geo.c @@ -198,6 +198,7 @@ geo_write(void) ff_vecs_t geo_vecs = { ff_type_file, + FF_CAP_RW_WPT, geo_rd_init, geo_wr_init, geo_rd_deinit, diff --git a/gpsbabel/geoniche.c b/gpsbabel/geoniche.c index 60f955c70..bd1041856 100644 --- a/gpsbabel/geoniche.c +++ b/gpsbabel/geoniche.c @@ -526,6 +526,7 @@ data_write(void) ff_vecs_t geoniche_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/glogbook.c b/gpsbabel/glogbook.c index cc281356c..8a99914b0 100644 --- a/gpsbabel/glogbook.c +++ b/gpsbabel/glogbook.c @@ -166,6 +166,7 @@ void gl_trk_alt(const char *args, const char **unused) ff_vecs_t glogbook_vecs = { ff_type_file, + FF_CAP_RW_ALL, glogbook_rd_init, glogbook_wr_init, glogbook_rd_deinit, diff --git a/gpsbabel/gpilots.c b/gpsbabel/gpilots.c index a5fe7fe52..bf1dda40c 100644 --- a/gpsbabel/gpilots.c +++ b/gpsbabel/gpilots.c @@ -449,6 +449,7 @@ data_write(void) ff_vecs_t gpilots_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/gpspilot.c b/gpsbabel/gpspilot.c index 7863af855..2c74f9966 100644 --- a/gpsbabel/gpspilot.c +++ b/gpsbabel/gpspilot.c @@ -247,6 +247,7 @@ data_write(void) ff_vecs_t gpspilot_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/gpsutil.c b/gpsbabel/gpsutil.c index eeec5659f..1a56354b3 100644 --- a/gpsbabel/gpsutil.c +++ b/gpsbabel/gpsutil.c @@ -141,6 +141,7 @@ data_write(void) ff_vecs_t gpsutil_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/gpx.c b/gpsbabel/gpx.c index eab64107a..9f6c5a38b 100644 --- a/gpsbabel/gpx.c +++ b/gpsbabel/gpx.c @@ -1296,6 +1296,7 @@ arglist_t gpx_args[] = { ff_vecs_t gpx_vecs = { ff_type_file, + FF_CAP_RW_ALL, gpx_rd_init, gpx_wr_init, gpx_rd_deinit, diff --git a/gpsbabel/hiketech.c b/gpsbabel/hiketech.c index 97f11066d..67377cde2 100644 --- a/gpsbabel/hiketech.c +++ b/gpsbabel/hiketech.c @@ -229,6 +229,7 @@ void ht_trk_alt(const char *args, const char **unused) ff_vecs_t hiketech_vecs = { ff_type_file, + { ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_none }, hiketech_rd_init, hiketech_wr_init, hiketech_rd_deinit, diff --git a/gpsbabel/holux.c b/gpsbabel/holux.c index 41735b2d4..5b5d21efb 100644 --- a/gpsbabel/holux.c +++ b/gpsbabel/holux.c @@ -291,6 +291,7 @@ static void data_write(void) ff_vecs_t holux_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/hsa_ndv.c b/gpsbabel/hsa_ndv.c index 7cfa2c66d..5fad20f30 100644 --- a/gpsbabel/hsa_ndv.c +++ b/gpsbabel/hsa_ndv.c @@ -345,6 +345,7 @@ hsa_ndv_write(void) ff_vecs_t HsaEndeavourNavigator_vecs = { ff_type_file, + FF_CAP_RW_WPT, hsa_ndv_rd_init, hsa_ndv_wr_init, hsa_ndv_rd_deinit, diff --git a/gpsbabel/html.c b/gpsbabel/html.c index bc00b547e..aad90cfce 100644 --- a/gpsbabel/html.c +++ b/gpsbabel/html.c @@ -254,6 +254,7 @@ data_write(void) ff_vecs_t html_vecs = { ff_type_file, + { ff_cap_write, ff_cap_none, ff_cap_none }, NULL, wr_init, NULL, diff --git a/gpsbabel/igc.c b/gpsbabel/igc.c index 5ccbfb0c6..ceaeae8cd 100644 --- a/gpsbabel/igc.c +++ b/gpsbabel/igc.c @@ -894,6 +894,7 @@ static arglist_t igc_args[] = { ff_vecs_t igc_vecs = { ff_type_file, + { ff_cap_none , ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_write }, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/magnav.c b/gpsbabel/magnav.c index 392974e40..c33425953 100644 --- a/gpsbabel/magnav.c +++ b/gpsbabel/magnav.c @@ -263,6 +263,7 @@ data_write(void) ff_vecs_t magnav_vec = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/magproto.c b/gpsbabel/magproto.c index 775bacd7e..2faee6eca 100644 --- a/gpsbabel/magproto.c +++ b/gpsbabel/magproto.c @@ -1388,6 +1388,7 @@ mag_write(void) */ ff_vecs_t mag_svecs = { ff_type_serial, + FF_CAP_RW_ALL, mag_rd_init, mag_wr_init, mag_deinit, @@ -1400,6 +1401,7 @@ ff_vecs_t mag_svecs = { ff_vecs_t mag_fvecs = { ff_type_file, + FF_CAP_RW_ALL, mag_rd_init, mag_wr_init, mag_deinit, diff --git a/gpsbabel/mapopolis.c b/gpsbabel/mapopolis.c index fecb23f87..d89b0baab 100644 --- a/gpsbabel/mapopolis.c +++ b/gpsbabel/mapopolis.c @@ -311,6 +311,7 @@ data_write(void) ff_vecs_t mapopolis_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/mapsend.c b/gpsbabel/mapsend.c index 7477a043f..c7e24feba 100644 --- a/gpsbabel/mapsend.c +++ b/gpsbabel/mapsend.c @@ -584,6 +584,7 @@ mapsend_wpt_write(void) ff_vecs_t mapsend_vecs = { ff_type_file, + FF_CAP_RW_ALL, mapsend_rd_init, mapsend_wr_init, mapsend_rd_deinit, diff --git a/gpsbabel/mapsource.c b/gpsbabel/mapsource.c index c4f0f1ade..a7a2df5ac 100644 --- a/gpsbabel/mapsource.c +++ b/gpsbabel/mapsource.c @@ -2174,6 +2174,7 @@ mps_write(void) ff_vecs_t mps_vecs = { ff_type_file, + FF_CAP_RW_ALL, mps_rd_init, mps_wr_init, mps_rd_deinit, diff --git a/gpsbabel/navicache.c b/gpsbabel/navicache.c index 0d42a38ba..eb134c21f 100644 --- a/gpsbabel/navicache.c +++ b/gpsbabel/navicache.c @@ -256,6 +256,7 @@ nav_write(void) ff_vecs_t navicache_vecs = { ff_type_file, + FF_CAP_RW_WPT, nav_rd_init, nav_wr_init, nav_rd_deinit, diff --git a/gpsbabel/netstumbler.c b/gpsbabel/netstumbler.c index 1674215e6..5c5489d36 100644 --- a/gpsbabel/netstumbler.c +++ b/gpsbabel/netstumbler.c @@ -293,6 +293,7 @@ fix_netstumbler_dupes(void) ff_vecs_t netstumbler_vecs = { ff_type_file, + { ff_cap_write, ff_cap_none, ff_cap_none }, rd_init, NULL, rd_deinit, diff --git a/gpsbabel/nmea.c b/gpsbabel/nmea.c index 3b0f136ae..b42fa24f5 100644 --- a/gpsbabel/nmea.c +++ b/gpsbabel/nmea.c @@ -447,6 +447,7 @@ nmea_write() ff_vecs_t nmea_vecs = { ff_type_file, + { ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_write, ff_cap_none}, nmea_rd_init, nmea_wr_init, nmea_rd_deinit, diff --git a/gpsbabel/ozi.c b/gpsbabel/ozi.c index ff9487571..4debbb81d 100644 --- a/gpsbabel/ozi.c +++ b/gpsbabel/ozi.c @@ -692,6 +692,7 @@ data_write(void) ff_vecs_t ozi_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/palmdoc.c b/gpsbabel/palmdoc.c index 40cf79b00..578c21aac 100644 --- a/gpsbabel/palmdoc.c +++ b/gpsbabel/palmdoc.c @@ -604,6 +604,7 @@ data_write(void) ff_vecs_t palmdoc_vecs = { ff_type_file, + { ff_cap_write, ff_cap_none, ff_cap_none}, NULL, wr_init, NULL, diff --git a/gpsbabel/pcx.c b/gpsbabel/pcx.c index 4b4997b6d..27a04ae9b 100644 --- a/gpsbabel/pcx.c +++ b/gpsbabel/pcx.c @@ -266,6 +266,7 @@ fprintf(file_out, ff_vecs_t pcx_vecs = { ff_type_file, + { ff_cap_read | ff_cap_write, ff_cap_read | ff_cap_write, ff_cap_none }, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/psitrex.c b/gpsbabel/psitrex.c index 9166f830f..3be021c4c 100755 --- a/gpsbabel/psitrex.c +++ b/gpsbabel/psitrex.c @@ -799,6 +799,7 @@ psit_write(void) ff_vecs_t psit_vecs = { ff_type_file, + FF_CAP_RW_ALL, psit_rd_init, psit_wr_init, psit_rd_deinit, diff --git a/gpsbabel/psp.c b/gpsbabel/psp.c index 01fde6645..89103c81b 100644 --- a/gpsbabel/psp.c +++ b/gpsbabel/psp.c @@ -459,6 +459,7 @@ psp_write(void) ff_vecs_t psp_vecs = { ff_type_file, + FF_CAP_RW_WPT, psp_rd_init, psp_wr_init, psp_rd_deinit, diff --git a/gpsbabel/quovadis.c b/gpsbabel/quovadis.c index a5274f801..164e7307c 100644 --- a/gpsbabel/quovadis.c +++ b/gpsbabel/quovadis.c @@ -285,6 +285,7 @@ data_write(void) ff_vecs_t quovadis_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/saroute.c b/gpsbabel/saroute.c index 23152112e..4bc5faca8 100644 --- a/gpsbabel/saroute.c +++ b/gpsbabel/saroute.c @@ -270,6 +270,7 @@ wr_init(const char *fname) ff_vecs_t saroute_vecs = { ff_type_file, + { ff_cap_none, ff_cap_read, ff_cap_none}, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/shape.c b/gpsbabel/shape.c index 0da74b97c..14a35318a 100644 --- a/gpsbabel/shape.c +++ b/gpsbabel/shape.c @@ -190,6 +190,7 @@ my_write(void) ff_vecs_t shape_vecs = { ff_type_internal, + FF_CAP_RW_ALL, my_rd_init, my_wr_init, my_rd_deinit, diff --git a/gpsbabel/text.c b/gpsbabel/text.c index b369e7500..4bd5f5565 100644 --- a/gpsbabel/text.c +++ b/gpsbabel/text.c @@ -220,6 +220,7 @@ data_write(void) ff_vecs_t text_vecs = { ff_type_file, + { ff_cap_write, ff_cap_none, ff_cap_none}, NULL, wr_init, NULL, diff --git a/gpsbabel/tiger.c b/gpsbabel/tiger.c index e0fdfd4f1..f723a8951 100644 --- a/gpsbabel/tiger.c +++ b/gpsbabel/tiger.c @@ -277,6 +277,7 @@ data_write(void) ff_vecs_t tiger_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/tmpro.c b/gpsbabel/tmpro.c index e9968814d..708dd9abd 100644 --- a/gpsbabel/tmpro.c +++ b/gpsbabel/tmpro.c @@ -244,6 +244,7 @@ data_write(void) ff_vecs_t tmpro_vecs = { ff_type_file, + FF_CAP_RW_WPT, rd_init, wr_init, rd_deinit, diff --git a/gpsbabel/tpg.c b/gpsbabel/tpg.c index d9eb11c7c..e9e5a1a57 100644 --- a/gpsbabel/tpg.c +++ b/gpsbabel/tpg.c @@ -355,6 +355,7 @@ tpg_write(void) ff_vecs_t tpg_vecs = { ff_type_file, + FF_CAP_RW_WPT, tpg_rd_init, tpg_wr_init, tpg_rd_deinit, diff --git a/gpsbabel/vcf.c b/gpsbabel/vcf.c index 8c1ad9a41..2ffbc79a9 100644 --- a/gpsbabel/vcf.c +++ b/gpsbabel/vcf.c @@ -132,6 +132,7 @@ data_write(void) ff_vecs_t vcf_vecs = { ff_type_file, + { ff_cap_write, ff_cap_none, ff_cap_none}, NULL, wr_init, NULL, diff --git a/gpsbabel/xcsv.c b/gpsbabel/xcsv.c index 1628ece0d..a3489a8e5 100644 --- a/gpsbabel/xcsv.c +++ b/gpsbabel/xcsv.c @@ -562,6 +562,7 @@ xcsv_wr_deinit(void) ff_vecs_t xcsv_vecs = { ff_type_internal, + FF_CAP_RW_WPT, /* This is a bit of a lie for now... */ xcsv_rd_init, xcsv_wr_init, xcsv_rd_deinit, -- 2.30.2